//
//  HMBaseTableViewController.swift
//  iOSWeibo11
//
//  Created by Apple on 16/7/18.
//  Copyright © 2016年 Apple. All rights reserved.
//

import UIKit

class HMBaseTableViewController: UITableViewController {

    /// 用户是否登陆
    var userLogin = HMUserAccountViewModel.sharedUserAccountViewModel.userLogin
    
    override func loadView() {
        if userLogin {
            // 已经登陆, 不用处理
            super.loadView()
        } else {
            // 没有登陆, 自己搞一个view
//            let view = UIView()
//            view.backgroundColor = UIColor.brownColor()
            
            self.view = visitorView
            
            // 5.设置代理, 会报错,self要去遵守协议
            visitorView.delegate = self
            
            // 根据不同的控制器设置访客视图的内容
            // 多态: 父类的类型指向子类对象
//            print("self - \(self)")
            if self is HMHomeTableViewController {
                print("self - 首页")
                // 动画旋转
                visitorView.startAnimation()
            } else if  self is HMMessageTableViewController {
                print("self - 消息")
                visitorView.setupVisitorInfo("visitordiscover_image_message", message: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
            } else if  self is HMDiscoveryTableViewController {
                print("self - 发现")
                visitorView.setupVisitorInfo("visitordiscover_image_message", message: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
            } else if  self is HMProfileTableViewController {
                print("self - 我")
                visitorView.setupVisitorInfo("visitordiscover_image_profile", message: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
            }
            
            // 4个控制器都会走这段代码
            self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("visitorViewDidRegister"))
            self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: UIBarButtonItemStyle.Plain, target: self, action: Selector("visitorViewDidLogin"))
        }
    }
    
    // MARK: - barButtonItem点击事件
    // 按钮点击事件是系统调用的
    // @objc 让系统的OC方法可以调用
//    @objc private func registerClick() {
//        print("注册按钮点击了")
//    }
//    
//    func loginClick() {
//        print("登录按钮点击了")
//    }
    
    // MARK: - 懒加载
    /// 访客视图
    lazy var visitorView: HMVisitorView = HMVisitorView()
}

// 6.遵守协议,还报错,实现代理方法
extension HMBaseTableViewController: VisitorViewDelegate {
    // MARK: - 代理方法
    // 7.实现代理方法
    func visitorViewDidLogin() {
        // 弹出登录界面
        let oauthVC = HMOauthViewController()
        self.presentViewController(UINavigationController(rootViewController: oauthVC), animated: true, completion: nil)
    }
    
    func visitorViewDidRegister() {
        print("在控制器里面 注册")
    }
}